home *** CD-ROM | disk | FTP | other *** search
Wrap
Attribute VB_Name = "dos32" ' DoS32.bas by ╨║º (xdosx@hotmail.com) Option Explicit Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (destination As Any, Source As Any, ByVal Length As Long) Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long Public Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Public Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hWnd As Long) As Long Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long Public Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As String, ByVal nSize As Long, ByRef lpNumberOfBytesWritten As Long) As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function SendMessageLong& Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) Public Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long Public Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Public Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Public Declare Function ReleaseCapture Lib "user32" () As Long Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long Public Const BM_GETCHECK = &HF0 Public Const BM_SETCHECK = &HF1 Public Const HWND_NOTOPMOST = -2 Public Const HWND_TOPMOST = -1 Public Const LB_GETCOUNT = &H18B Public Const LB_GETITEMDATA = &H199 Public Const LB_GETTEXT = &H189 Public Const LB_GETTEXTLEN = &H18A Public Const LB_SETCURSEL = &H186 Public Const LB_SETSEL = &H185 Public Const SND_ASYNC = &H1 Public Const SND_NODEFAULT = &H2 Public Const SND_FLAG = SND_ASYNC Or SND_NODEFAULT Public Const SW_HIDE = 0 Public Const SW_SHOW = 5 Public Const SWP_NOMOVE = &H2 Public Const SWP_NOSIZE = &H1 Public Const VK_DOWN = &H28 Public Const VK_LEFT = &H25 Public Const VK_MENU = &H12 Public Const VK_RETURN = &HD Public Const VK_RIGHT = &H27 Public Const VK_SHIFT = &H10 Public Const VK_SPACE = &H20 Public Const VK_UP = &H26 Public Const WM_CHAR = &H102 Public Const WM_CLOSE = &H10 Public Const WM_COMMAND = &H111 Public Const WM_GETTEXT = &HD Public Const WM_GETTEXTLENGTH = &HE Public Const WM_KEYDOWN = &H100 Public Const WM_KEYUP = &H101 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_MOVE = &HF012 Public Const WM_SETTEXT = &HC Public Const WM_SYSCOMMAND = &H112 Public Const PROCESS_READ = &H10 Public Const RIGHTS_REQUIRED = &HF0000 Public Const ENTER_KEY = 13 Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE Public Type POINTAPI X As Long Y As Long End Type Public Function FindForwardWindow() As Long Dim AOL As Long, MDI As Long, child As Long Dim Rich1 As Long, Rich2 As Long, Combo As Long Dim FontCombo As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) child& = FindWindowEx(MDI&, 0&, "AOL Child", vbNullString) Rich1& = FindWindowEx(child&, 0&, "RICHCNTL", vbNullString) Rich2& = FindWindowEx(child&, Rich1&, "RICHCNTL", vbNullString) Combo& = FindWindowEx(child&, 0&, "_AOL_Combobox", vbNullString) FontCombo& = FindWindowEx(child&, 0&, "_AOL_FontCombo", vbNullString) If Rich1& <> 0& And Rich2& = 0& And Combo& = 0& And FontCombo& = 0& Then FindForwardWindow& = child& Exit Function Else Do child& = FindWindowEx(MDI&, child&, "AOL Child", vbNullString) Rich1& = FindWindowEx(child&, 0&, "RICHCNTL", vbNullString) Rich2& = FindWindowEx(child&, Rich1&, "RICHCNTL", vbNullString) Combo& = FindWindowEx(child&, 0&, "_AOL_Combobox", vbNullString) FontCombo& = FindWindowEx(child&, 0&, "_AOL_FontCombo", vbNullString) If Rich1& <> 0& And Rich2& = 0& And Combo& = 0& And FontCombo& = 0& Then FindForwardWindow& = child& Exit Function End If Loop Until child& = 0& End If FindForwardWindow& = 0& End Function Public Function FindSendWindow() As Long Dim AOL As Long, MDI As Long, child As Long Dim SendStatic As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) child& = FindWindowEx(MDI&, 0&, "AOL Child", vbNullString) SendStatic& = FindWindowEx(child&, 0&, "_AOL_Static", "Send Now") If SendStatic& <> 0& Then FindSendWindow& = child& Exit Function Else Do child& = FindWindowEx(MDI&, child&, "AOL Child", vbNullString) SendStatic& = FindWindowEx(child&, 0&, "_AOL_Static", "Send Now") If SendStatic& <> 0& Then FindSendWindow& = child& Exit Function End If Loop Until child& = 0& End If FindSendWindow& = 0& End Function Public Sub MailOpenFlash() Dim AOL As Long, tool As Long, Toolbar As Long Dim ToolIcon As Long, DoThis As Long, sMod As Long Dim CurPos As POINTAPI, WinVis As Long AOL& = FindWindow("AOL Frame25", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, 0&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) Call GetCursorPos(CurPos) Call SetCursorPos(Screen.width, Screen.height) Call PostMessage(ToolIcon&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(ToolIcon&, WM_LBUTTONUP, 0&, 0&) Do sMod& = FindWindow("#32768", vbNullString) WinVis& = IsWindowVisible(sMod&) Loop Until WinVis& = 1 Call PostMessage(sMod&, WM_KEYDOWN, VK_UP, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_UP, 0&) Call PostMessage(sMod&, WM_KEYDOWN, VK_RIGHT, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_RIGHT, 0&) Call PostMessage(sMod&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_RETURN, 0&) Call SetCursorPos(CurPos.X, CurPos.Y) End Sub Public Sub MailOpenNew() Dim AOL As Long, tool As Long, Toolbar As Long Dim ToolIcon As Long, sMod As Long, CurPos As POINTAPI Dim WinVis As Long AOL& = FindWindow("AOL Frame25", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, 0&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) Call GetCursorPos(CurPos) Call SetCursorPos(Screen.width, Screen.height) Call PostMessage(ToolIcon&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(ToolIcon&, WM_LBUTTONUP, 0&, 0&) Do sMod& = FindWindow("#32768", vbNullString) WinVis& = IsWindowVisible(sMod&) Loop Until WinVis& = 1 Call PostMessage(sMod&, WM_KEYDOWN, VK_DOWN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_DOWN, 0&) Call PostMessage(sMod&, WM_KEYDOWN, VK_DOWN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_DOWN, 0&) Call PostMessage(sMod&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_RETURN, 0&) Call SetCursorPos(CurPos.X, CurPos.Y) End Sub Public Sub MailOpenOld() Dim AOL As Long, tool As Long, Toolbar As Long Dim ToolIcon As Long, DoThis As Long, sMod As Long Dim CurPos As POINTAPI, WinVis As Long AOL& = FindWindow("AOL Frame25", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, 0&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) Call GetCursorPos(CurPos) Call SetCursorPos(Screen.width, Screen.height) Call PostMessage(ToolIcon&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(ToolIcon&, WM_LBUTTONUP, 0&, 0&) Do sMod& = FindWindow("#32768", vbNullString) WinVis& = IsWindowVisible(sMod&) Loop Until WinVis& = 1 For DoThis& = 1 To 4 Call PostMessage(sMod&, WM_KEYDOWN, VK_DOWN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_DOWN, 0&) Next DoThis& Call PostMessage(sMod&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_RETURN, 0&) Call SetCursorPos(CurPos.X, CurPos.Y) End Sub Public Sub MailOpenSent() Dim AOL As Long, tool As Long, Toolbar As Long Dim ToolIcon As Long, DoThis As Long, sMod As Long Dim CurPos As POINTAPI, WinVis As Long AOL& = FindWindow("AOL Frame25", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, 0&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) Call GetCursorPos(CurPos) Call SetCursorPos(Screen.width, Screen.height) Call PostMessage(ToolIcon&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(ToolIcon&, WM_LBUTTONUP, 0&, 0&) Do sMod& = FindWindow("#32768", vbNullString) WinVis& = IsWindowVisible(sMod&) Loop Until WinVis& = 1 For DoThis& = 1 To 5 Call PostMessage(sMod&, WM_KEYDOWN, VK_DOWN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_DOWN, 0&) Next DoThis& Call PostMessage(sMod&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_RETURN, 0&) Call SetCursorPos(CurPos.X, CurPos.Y) End Sub Public Sub MailOpenEmailFlash(index As Long) Dim AOL As Long, MDI As Long, fMail As Long, fList As Long Dim fCount As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) fMail& = FindWindowEx(MDI&, 0&, "AOL Child", "Incoming/Saved Mail") fList& = FindWindowEx(fMail&, 0&, "_AOL_Tree", vbNullString) fCount& = SendMessage(fList&, LB_GETCOUNT, 0&, 0&) If fCount& < index& Then Exit Sub Call SendMessage(fList&, LB_SETCURSEL, index&, 0&) Call PostMessage(fList&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(fList&, WM_KEYUP, VK_RETURN, 0&) End Sub Public Sub MailOpenEmailNew(index As Long) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& < index& Then Exit Sub Call SendMessage(mTree&, LB_SETCURSEL, index&, 0&) Call PostMessage(mTree&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(mTree&, WM_KEYUP, VK_RETURN, 0&) End Sub Public Sub MailOpenEmailOld(index As Long) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& < index& Then Exit Sub Call SendMessage(mTree&, LB_SETCURSEL, index&, 0&) Call PostMessage(mTree&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(mTree&, WM_KEYUP, VK_RETURN, 0&) End Sub Public Sub MailOpenEmailSent(index As Long) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& < index& Then Exit Sub Call SendMessage(mTree&, LB_SETCURSEL, index&, 0&) Call PostMessage(mTree&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(mTree&, WM_KEYUP, VK_RETURN, 0&) End Sub Public Function MailCountFlash() As Long Dim AOL As Long, MDI As Long, fMail As Long, fList As Long Dim Count As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) fMail& = FindWindowEx(MDI&, 0&, "AOL Child", "Incoming/Saved Mail") fList& = FindWindowEx(fMail&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(fList&, LB_GETCOUNT, 0&, 0&) MailCountFlash& = Count& End Function Public Sub MailToListFlash(TheList As ListBox) Dim AOL As Long, MDI As Long, fMail As Long, fList As Long Dim Count As Long, MyString As String, AddMails As Long Dim sLength As Long, Spot As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) fMail& = FindWindowEx(MDI&, 0&, "AOL Child", "Incoming/Saved Mail") If fMail& = 0& Then Exit Sub fList& = FindWindowEx(fMail&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(fList&, LB_GETCOUNT, 0&, 0&) MyString$ = String(255, 0) For AddMails& = 0 To Count& - 1 DoEvents sLength& = SendMessage(fList&, LB_GETTEXTLEN, AddMails&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(fList&, LB_GETTEXT, AddMails&, MyString$) Spot& = InStr(MyString$, Chr(9)) Spot& = InStr(Spot& + 1, MyString$, Chr(9)) MyString$ = Right(MyString$, Len(MyString$) - Spot&) MyString$ = ReplaceString(MyString$, Chr(0), "") TheList.AddItem MyString$ Next AddMails& End Sub Public Function FindMailBox() As Long Dim AOL As Long, MDI As Long, child As Long Dim TabControl As Long, TabPage As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) child& = FindWindowEx(MDI&, 0&, "AOL Child", vbNullString) TabControl& = FindWindowEx(child&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) If TabControl& <> 0& And TabPage& <> 0& Then FindMailBox& = child& Exit Function Else Do child& = FindWindowEx(MDI&, child&, "AOL Child", vbNullString) TabControl& = FindWindowEx(child&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) If TabControl& <> 0& And TabPage& <> 0& Then FindMailBox& = child& Exit Function End If Loop Until child& = 0& End If FindMailBox& = 0& End Function Public Function MailCountNew() As Long Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Function TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) MailCountNew& = Count& End Function Public Function MailCountSent() As Long Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Function TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) MailCountSent& = Count& End Function Public Function MailCountOld() As Long Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Function TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) MailCountOld& = Count& End Function Public Sub MailDeleteNewByIndex(index As Long) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long, dButton As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If index& > Count& - 1 Or index& < 0& Then Exit Sub Call SendMessage(mTree&, LB_SETCURSEL, index&, 0&) dButton& = FindWindowEx(MailBox&, 0&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) Call SendMessage(dButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(dButton&, WM_LBUTTONUP, 0&, 0&) End Sub Public Sub MailDeleteNewDuplicates(VBForm As Form, DisplayStatus As Boolean) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long, dButton As Long Dim SearchBox As Long, cSender As String, cSubject As String Dim SearchFor As Long, sSender As String, sSubject As String Dim CurCaption As String MailBox& = FindMailBox& CurCaption$ = VBForm.Caption If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) dButton& = FindWindowEx(MailBox&, 0&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0& Then Exit Sub For SearchFor& = 0& To Count& - 2 DoEvents sSender$ = MailSenderNew(SearchFor&) sSubject$ = MailSubjectNew(SearchFor&) If sSender$ = "" Then VBForm.Caption = CurCaption$ Exit Sub End If For SearchBox& = SearchFor& + 1 To Count& - 1 If DisplayStatus = True Then VBForm.Caption = "Now checking #" & SearchFor& & " for match with #" & SearchBox& End If cSender$ = MailSenderNew(SearchBox&) cSubject$ = MailSubjectNew(SearchBox&) If cSender$ = sSender$ And cSubject$ = sSubject$ Then Call SendMessage(mTree&, LB_SETCURSEL, SearchBox&, 0&) DoEvents Call SendMessage(dButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(dButton&, WM_LBUTTONUP, 0&, 0&) DoEvents SearchBox& = SearchBox& - 1 End If Next SearchBox& Next SearchFor& VBForm.Caption = CurCaption$ End Sub Public Sub MailDeleteNewBySender(Sender As String) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long, dButton As Long Dim SearchBox As Long, cSender As String MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) dButton& = FindWindowEx(MailBox&, 0&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0& Then Exit Sub For SearchBox& = 0& To Count& - 1 cSender$ = MailSenderNew(SearchBox&) If LCase(cSender$) = LCase(Sender$) Then Call SendMessage(mTree&, LB_SETCURSEL, SearchBox&, 0&) DoEvents Call SendMessage(dButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(dButton&, WM_LBUTTONUP, 0&, 0&) DoEvents SearchBox& = SearchBox& - 1 End If Next SearchBox& End Sub Public Sub MailDeleteNewNotSender(Sender As String) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, Count As Long, dButton As Long Dim SearchBox As Long, cSender As String MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) dButton& = FindWindowEx(MailBox&, 0&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) dButton& = FindWindowEx(MailBox&, dButton&, "_AOL_Icon", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0& Then Exit Sub For SearchBox& = 0& To Count& - 1 cSender$ = MailSenderNew(SearchBox&) If cSender$ = "" Then Exit Sub If LCase(cSender$) <> LCase(Sender$) Then Call SendMessage(mTree&, LB_SETCURSEL, SearchBox&, 0&) DoEvents Call SendMessage(dButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(dButton&, WM_LBUTTONUP, 0&, 0&) DoEvents SearchBox& = SearchBox& - 1 End If Next SearchBox& End Sub Public Function MailSenderFlash(index As Long) As String Dim AOL As Long, MDI As Long, fMail As Long, fList As Long Dim fCount As Long, DeleteButton As Long, sLength As Long Dim MyString As String, Spot1 As Long, Spot2 As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) fMail& = FindWindowEx(MDI&, 0&, "AOL Child", "Incoming/Saved Mail") fList& = FindWindowEx(fMail&, 0&, "_AOL_Tree", vbNullString) fCount& = SendMessage(fList&, LB_GETCOUNT, 0&, 0&) If fCount& < index& Then Exit Function DeleteButton& = FindWindowEx(fMail&, 0&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) If fCount& = 0 Or index& > fCount& - 1 Or index& < 0& Then Exit Function sLength& = SendMessage(fList&, LB_GETTEXTLEN, index&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(fList&, LB_GETTEXT, index&, MyString$) Spot1& = InStr(MyString$, Chr(9)) Spot2& = InStr(Spot1& + 1, MyString$, Chr(9)) MyString$ = Mid(MyString$, Spot1& + 1, Spot2& - Spot1& - 1) MailSenderFlash$ = MyString$ End Function Public Function MailSenderNew(index As Long) As String Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, AddMails As Long, sLength As Long Dim Spot1 As Long, Spot2 As Long, MyString As String Dim Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Function TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0 Or index& > Count& - 1 Or index& < 0& Then Exit Function sLength& = SendMessage(mTree&, LB_GETTEXTLEN, index&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(mTree&, LB_GETTEXT, index&, MyString$) Spot1& = InStr(MyString$, Chr(9)) Spot2& = InStr(Spot1& + 1, MyString$, Chr(9)) MyString$ = Mid(MyString$, Spot1& + 1, Spot2& - Spot1& - 1) MailSenderNew$ = MyString$ End Function Public Function MailSubjectFlash(index As Long) As String Dim AOL As Long, MDI As Long, fMail As Long, fList As Long Dim fCount As Long, DeleteButton As Long, sLength As Long Dim MyString As String, Spot As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) fMail& = FindWindowEx(MDI&, 0&, "AOL Child", "Incoming/Saved Mail") fList& = FindWindowEx(fMail&, 0&, "_AOL_Tree", vbNullString) fCount& = SendMessage(fList&, LB_GETCOUNT, 0&, 0&) If fCount& < index& Then Exit Function DeleteButton& = FindWindowEx(fMail&, 0&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) If fCount& = 0 Or index& > fCount& - 1 Or index& < 0& Then Exit Function sLength& = SendMessage(fList&, LB_GETTEXTLEN, index&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(fList&, LB_GETTEXT, index&, MyString$) Spot& = InStr(MyString$, Chr(9)) Spot& = InStr(Spot& + 1, MyString$, Chr(9)) MyString$ = Right(MyString$, Len(MyString$) - Spot&) MyString$ = ReplaceString(MyString$, Chr(0), "") MailSubjectFlash$ = MyString$ End Function Public Function MailSubjectNew(index As Long) As String Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, AddMails As Long, sLength As Long Dim Spot As Long, MyString As String, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Function TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0 Or index& > Count& - 1 Or index& < 0& Then Exit Function sLength& = SendMessage(mTree&, LB_GETTEXTLEN, index&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(mTree&, LB_GETTEXT, index&, MyString$) Spot& = InStr(MyString$, Chr(9)) Spot& = InStr(Spot& + 1, MyString$, Chr(9)) MyString$ = Right(MyString$, Len(MyString$) - Spot&) MyString$ = ReplaceString(MyString$, Chr(0), "") MailSubjectNew$ = MyString$ End Function Public Sub MailToListNew(TheList As ListBox) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, AddMails As Long, sLength As Long Dim Spot As Long, MyString As String, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0 Then Exit Sub For AddMails& = 0 To Count& - 1 DoEvents sLength& = SendMessage(mTree&, LB_GETTEXTLEN, AddMails&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(mTree&, LB_GETTEXT, AddMails&, MyString$) Spot& = InStr(MyString$, Chr(9)) Spot& = InStr(Spot& + 1, MyString$, Chr(9)) MyString$ = Right(MyString$, Len(MyString$) - Spot&) TheList.AddItem MyString$ Next AddMails& End Sub Public Sub MailToListOld(TheList As ListBox) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, AddMails As Long, sLength As Long Dim Spot As Long, MyString As String, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0 Then Exit Sub For AddMails& = 0 To Count& - 1 DoEvents sLength& = SendMessage(mTree&, LB_GETTEXTLEN, AddMails&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(mTree&, LB_GETTEXT, AddMails&, MyString$) Spot& = InStr(MyString$, Chr(9)) Spot& = InStr(Spot& + 1, MyString$, Chr(9)) MyString$ = Right(MyString$, Len(MyString$) - Spot&) TheList.AddItem MyString$ Next AddMails& End Sub Public Sub MailToListSent(TheList As ListBox) Dim MailBox As Long, TabControl As Long, TabPage As Long Dim mTree As Long, AddMails As Long, sLength As Long Dim Spot As Long, MyString As String, Count As Long MailBox& = FindMailBox& If MailBox& = 0& Then Exit Sub TabControl& = FindWindowEx(MailBox&, 0&, "_AOL_TabControl", vbNullString) TabPage& = FindWindowEx(TabControl&, 0&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) TabPage& = FindWindowEx(TabControl&, TabPage&, "_AOL_TabPage", vbNullString) mTree& = FindWindowEx(TabPage&, 0&, "_AOL_Tree", vbNullString) Count& = SendMessage(mTree&, LB_GETCOUNT, 0&, 0&) If Count& = 0 Then Exit Sub For AddMails& = 0 To Count& - 1 DoEvents sLength& = SendMessage(mTree&, LB_GETTEXTLEN, AddMails&, 0&) MyString$ = String(sLength& + 1, 0) Call SendMessageByString(mTree&, LB_GETTEXT, AddMails&, MyString$) Spot& = InStr(MyString$, Chr(9)) Spot& = InStr(Spot& + 1, MyString$, Chr(9)) MyString$ = Right(MyString$, Len(MyString$) - Spot&) TheList.AddItem MyString$ Next AddMails& End Sub Public Sub SendMail(Person As String, subject As String, Message As String) Dim AOL As Long, MDI As Long, tool As Long, Toolbar As Long Dim ToolIcon As Long, OpenSend As Long, DoIt As Long Dim Rich As Long, EditTo As Long, EditCC As Long Dim EditSubject As Long, SendButton As Long Dim Combo As Long, fCombo As Long, ErrorWindow As Long Dim Button1 As Long, Button2 As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, 0&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) Call PostMessage(ToolIcon&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(ToolIcon&, WM_LBUTTONUP, 0&, 0&) DoEvents Do DoEvents OpenSend& = FindWindowEx(MDI&, 0&, "AOL Child", "Write Mail") EditTo& = FindWindowEx(OpenSend&, 0&, "_AOL_Edit", vbNullString) EditCC& = FindWindowEx(OpenSend&, EditTo&, "_AOL_Edit", vbNullString) EditSubject& = FindWindowEx(OpenSend&, EditCC&, "_AOL_Edit", vbNullString) Rich& = FindWindowEx(OpenSend&, 0&, "RICHCNTL", vbNullString) Combo& = FindWindowEx(OpenSend&, 0&, "_AOL_Combobox", vbNullString) fCombo& = FindWindowEx(OpenSend&, 0&, "_AOL_Fontcombo", vbNullString) Button1& = FindWindowEx(OpenSend&, 0&, "_AOL_Icon", vbNullString) Button2& = FindWindowEx(OpenSend&, Button1&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(OpenSend&, 0&, "_AOL_Icon", vbNullString) For DoIt& = 1 To 13 SendButton& = FindWindowEx(OpenSend&, SendButton&, "_AOL_Icon", vbNullString) Next DoIt& Loop Until OpenSend& <> 0& And EditTo& <> 0& And EditCC& <> 0& And EditSubject& <> 0& And Rich& <> 0& And SendButton& <> 0& And Combo& <> 0& And fCombo& <> 0& & SendButton& <> Button1& And SendButton& <> Button2& Call SendMessageByString(EditTo&, WM_SETTEXT, 0, Person$) DoEvents Call SendMessageByString(EditSubject&, WM_SETTEXT, 0, subject$) DoEvents Call SendMessageByString(Rich&, WM_SETTEXT, 0, Message$) DoEvents Pause 0.2 Call SendMessage(SendButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(SendButton&, WM_LBUTTONUP, 0&, 0&) End Sub Public Sub MailForward(SendTo As String, Message As String, DeleteFwd As Boolean) Dim AOL As Long, MDI As Long, error As Long Dim OpenForward As Long, OpenSend As Long, SendButton As Long Dim DoIt As Long, EditTo As Long, EditCC As Long Dim EditSubject As Long, Rich As Long, fCombo As Long Dim Combo As Long, Button1 As Long, Button2 As Long Dim TempSubject As String OpenForward& = FindForwardWindow If OpenForward& = 0 Then Exit Sub SendButton& = FindWindowEx(OpenForward&, 0&, "_AOL_Icon", vbNullString) For DoIt& = 1 To 6 SendButton& = FindWindowEx(OpenForward&, SendButton&, "_AOL_Icon", vbNullString) Next DoIt& Call SendMessage(SendButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(SendButton&, WM_LBUTTONUP, 0&, 0&) Do DoEvents OpenSend& = FindSendWindow EditTo& = FindWindowEx(OpenSend&, 0&, "_AOL_Edit", vbNullString) EditCC& = FindWindowEx(OpenSend&, EditTo&, "_AOL_Edit", vbNullString) EditSubject& = FindWindowEx(OpenSend&, EditCC&, "_AOL_Edit", vbNullString) Rich& = FindWindowEx(OpenSend&, 0&, "RICHCNTL", vbNullString) Combo& = FindWindowEx(OpenSend&, 0&, "_AOL_Combobox", vbNullString) fCombo& = FindWindowEx(OpenSend&, 0&, "_AOL_Fontcombo", vbNullString) Button1& = FindWindowEx(OpenSend&, 0&, "_AOL_Icon", vbNullString) Button2& = FindWindowEx(OpenSend&, Button1&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(OpenSend&, 0&, "_AOL_Icon", vbNullString) For DoIt& = 1 To 13 SendButton& = FindWindowEx(OpenSend&, SendButton&, "_AOL_Icon", vbNullString) Next DoIt& Loop Until OpenSend& <> 0& And EditTo& <> 0& And EditCC& <> 0& And EditSubject& <> 0& And Rich& <> 0& And SendButton& <> 0& And Combo& <> 0& And fCombo& <> 0& & SendButton& <> Button1& And SendButton& <> Button2& If DeleteFwd = True Then TempSubject$ = GetText(EditSubject&) TempSubject$ = Right(TempSubject$, Len(TempSubject$) - 5) Call SendMessageByString(EditSubject&, WM_SETTEXT, 0, TempSubject$) DoEvents End If Call SendMessageByString(EditTo&, WM_SETTEXT, 0, SendTo$) DoEvents Call SendMessageByString(Rich&, WM_SETTEXT, 0, Message$) DoEvents Do Until OpenSend& = 0& Or error& <> 0& DoEvents AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) error& = FindWindowEx(MDI&, 0&, "AOL Child", "Error") OpenSend& = FindSendWindow SendButton& = FindWindowEx(OpenSend&, 0&, "_AOL_Icon", vbNullString) For DoIt& = 1 To 11 SendButton& = FindWindowEx(OpenSend&, SendButton&, "_AOL_Icon", vbNullString) Next DoIt& Call SendMessage(SendButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(SendButton&, WM_LBUTTONUP, 0&, 0&) Pause 1 Loop If OpenSend& = 0& Then Call PostMessage(OpenForward&, WM_CLOSE, 0&, 0&) End Sub Public Sub CloseOpenMails() Dim OpenSend As Long, OpenForward As Long Do DoEvents OpenSend& = FindSendWindow OpenForward& = FindForwardWindow Call PostMessage(OpenSend&, WM_CLOSE, 0&, 0&) DoEvents Call PostMessage(OpenForward&, WM_CLOSE, 0&, 0&) DoEvents Loop Until OpenSend& = 0& And OpenForward& = 0& End Sub Public Sub MailDeleteFlashByIndex(index As Long) Dim AOL As Long, MDI As Long, fMail As Long, fList As Long Dim fCount As Long, DeleteButton As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) fMail& = FindWindowEx(MDI&, 0&, "AOL Child", "Incoming/Saved Mail") fList& = FindWindowEx(fMail&, 0&, "_AOL_Tree", vbNullString) fCount& = SendMessage(fList&, LB_GETCOUNT, 0&, 0&) If fCount& < index& Then Exit Sub DeleteButton& = FindWindowEx(fMail&, 0&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) Call SendMessage(fList&, LB_SETCURSEL, index&, 0&) Call SendMessage(DeleteButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(DeleteButton&, WM_LBUTTONUP, 0&, 0&) End Sub Public Sub MailDeleteFlashDuplicates(VBForm As Form, DisplayStatus As Boolean) Dim AOL As Long, MDI As Long, fMail As Long, fList As Long Dim fCount As Long, DeleteButton As Long, SearchFor As Long Dim SearchBox As Long, CurCaption As String Dim sSender As String, sSubject As String Dim cSender As String, cSubject As String AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) fMail& = FindWindowEx(MDI&, 0&, "AOL Child", "Incoming/Saved Mail") fList& = FindWindowEx(fMail&, 0&, "_AOL_Tree", vbNullString) fCount& = SendMessage(fList&, LB_GETCOUNT, 0&, 0&) If fCount& < 2& Then Exit Sub DeleteButton& = FindWindowEx(fMail&, 0&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) DeleteButton& = FindWindowEx(fMail&, DeleteButton&, "_AOL_Icon", vbNullString) CurCaption$ = VBForm.Caption If fCount& = 0& Then Exit Sub For SearchFor& = 0& To fCount& - 2 DoEvents sSender$ = MailSenderFlash(SearchFor&) sSubject$ = MailSubjectFlash(SearchFor&) If sSender$ = "" Then VBForm.Caption = CurCaption$ Exit Sub End If For SearchBox& = SearchFor& + 1 To fCount& - 1 If DisplayStatus = True Then VBForm.Caption = "Checking #" & SearchFor& & " with #" & SearchBox& End If cSender$ = MailSenderFlash(SearchBox&) cSubject$ = MailSubjectFlash(SearchBox&) If cSender$ = sSender$ And cSubject$ = sSubject$ Then Call SendMessage(fList&, LB_SETCURSEL, SearchBox&, 0&) DoEvents Call SendMessage(DeleteButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(DeleteButton&, WM_LBUTTONUP, 0&, 0&) DoEvents SearchBox& = SearchBox& - 1 End If Next SearchBox& Next SearchFor& VBForm.Caption = CurCaption$ End Sub Public Sub SetMailPrefs() Dim AOL As Long, tool As Long, Toolbar As Long Dim ToolIcon As Long, DoThis As Long, sMod As Long Dim MDI As Long, mPrefs As Long, mButton As Long Dim gStatic As Long, mStatic As Long, fStatic As Long Dim maStatic As Long, dMod As Long, ConfirmCheck As Long Dim CloseCheck As Long, SpellCheck As Long, OKButton As Long Dim CurPos As POINTAPI, WinVis As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, 0&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) Call GetCursorPos(CurPos) Call SetCursorPos(Screen.width, Screen.height) Call PostMessage(ToolIcon&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(ToolIcon&, WM_LBUTTONUP, 0&, 0&) Do sMod& = FindWindow("#32768", vbNullString) WinVis& = IsWindowVisible(sMod&) Loop Until WinVis& = 1 For DoThis& = 1 To 3 Call PostMessage(sMod&, WM_KEYDOWN, VK_DOWN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_DOWN, 0&) Next DoThis& Call PostMessage(sMod&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_RETURN, 0&) Call SetCursorPos(CurPos.X, CurPos.Y) Do DoEvents mPrefs& = FindWindowEx(MDI&, 0&, "AOL Child", "Preferences") gStatic& = FindWindowEx(mPrefs&, 0&, "_AOL_Static", "General") mStatic& = FindWindowEx(mPrefs&, 0&, "_AOL_Static", "Mail") fStatic& = FindWindowEx(mPrefs&, 0&, "_AOL_Static", "Font") maStatic& = FindWindowEx(mPrefs&, 0&, "_AOL_Static", "Marketing") Loop Until mPrefs& <> 0& And gStatic& <> 0& And mStatic& <> 0& And fStatic& <> 0& And maStatic& <> 0& mButton& = FindWindowEx(mPrefs&, 0&, "_AOL_Icon", vbNullString) mButton& = FindWindowEx(mPrefs&, mButton&, "_AOL_Icon", vbNullString) mButton& = FindWindowEx(mPrefs&, mButton&, "_AOL_Icon", vbNullString) Do DoEvents Call SendMessage(mButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(mButton&, WM_LBUTTONUP, 0&, 0&) dMod& = FindWindow("_AOL_Modal", "Mail Preferences") Pause 0.6 Loop Until dMod& <> 0& ConfirmCheck& = FindWindowEx(dMod&, 0&, "_AOL_Checkbox", vbNullString) CloseCheck& = FindWindowEx(dMod&, ConfirmCheck&, "_AOL_Checkbox", vbNullString) SpellCheck& = FindWindowEx(dMod&, CloseCheck&, "_AOL_Checkbox", vbNullString) SpellCheck& = FindWindowEx(dMod&, SpellCheck&, "_AOL_Checkbox", vbNullString) SpellCheck& = FindWindowEx(dMod&, SpellCheck&, "_AOL_Checkbox", vbNullString) SpellCheck& = FindWindowEx(dMod&, SpellCheck&, "_AOL_Checkbox", vbNullString) OKButton& = FindWindowEx(dMod&, 0&, "_AOL_icon", vbNullString) Call SendMessage(ConfirmCheck&, BM_SETCHECK, False, vbNullString) Call SendMessage(CloseCheck&, BM_SETCHECK, True, vbNullString) Call SendMessage(SpellCheck&, BM_SETCHECK, False, vbNullString) Call SendMessage(OKButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(OKButton&, WM_LBUTTONUP, 0&, 0&) DoEvents Call PostMessage(mPrefs&, WM_CLOSE, 0&, 0&) End Sub Public Function ErrorName(name As Long) As String Dim AOL As Long, MDI As Long, ErrorWindow As Long Dim ErrorTextWindow As Long, ErrorString As String Dim NameCount As Long, TempString As String AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) ErrorWindow& = FindWindowEx(MDI&, 0&, "AOL Child", "Error") If ErrorWindow& = 0& Then Exit Function ErrorTextWindow& = FindWindowEx(ErrorWindow&, 0&, "_AOL_View", vbNullString) ErrorString$ = GetText(ErrorTextWindow&) NameCount& = LineCount(ErrorString$) - 2 If NameCount& < name& Then Exit Function TempString$ = LineFromString(ErrorString$, name& + 2) TempString$ = Left(TempString$, InStr(TempString$, "-") - 2) ErrorName$ = TempString$ End Function Public Function ErrorNameCount() As Long Dim AOL As Long, MDI As Long, ErrorWindow As Long Dim ErrorTextWindow As Long, ErrorString As String Dim NameCount As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) ErrorWindow& = FindWindowEx(MDI&, 0&, "AOL Child", "Error") If ErrorWindow& = 0& Then Exit Function ErrorTextWindow& = FindWindowEx(ErrorWindow&, 0&, "_AOL_View", vbNullString) ErrorString$ = GetText(ErrorTextWindow&) NameCount& = LineCount(ErrorString$) - 2 ErrorNameCount& = NameCount& End Function Public Function CheckAlive(ScreenName As String) As Boolean Dim AOL As Long, MDI As Long, ErrorWindow As Long Dim ErrorTextWindow As Long, ErrorString As String Dim MailWindow As Long, NoWindow As Long, NoButton As Long Call SendMail("*, " & ScreenName$, "You alive?", "=)") AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) Do DoEvents ErrorWindow& = FindWindowEx(MDI&, 0&, "AOL Child", "Error") ErrorTextWindow& = FindWindowEx(ErrorWindow&, 0&, "_AOL_View", vbNullString) ErrorString$ = GetText(ErrorTextWindow&) Loop Until ErrorWindow& <> 0 And ErrorTextWindow& <> 0 And ErrorString$ <> "" If InStr(LCase(ReplaceString(ErrorString$, " ", "")), LCase(ReplaceString(ScreenName$, " ", ""))) > 0 Then CheckAlive = False Else CheckAlive = True End If MailWindow& = FindWindowEx(MDI&, 0&, "AOL Child", "Write Mail") Call PostMessage(ErrorWindow&, WM_CLOSE, 0&, 0&) DoEvents Call PostMessage(MailWindow&, WM_CLOSE, 0&, 0&) DoEvents Do DoEvents NoWindow& = FindWindow("#32770", "America Online") NoButton& = FindWindowEx(NoWindow&, 0&, "Button", "&No") Loop Until NoWindow& <> 0& And NoButton& <> 0 Call SendMessage(NoButton&, WM_KEYDOWN, VK_SPACE, 0&) Call SendMessage(NoButton&, WM_KEYUP, VK_SPACE, 0&) End Function Public Sub ChatSend(Chat As String) Dim Room As Long, AORich As Long, AORich2 As Long Room& = FindRoom& AORich& = FindWindowEx(Room, 0&, "RICHCNTL", vbNullString) AORich2& = FindWindowEx(Room, AORich, "RICHCNTL", vbNullString) Call SendMessageByString(AORich2, WM_SETTEXT, 0&, Chat$) Call SendMessageLong(AORich2, WM_CHAR, ENTER_KEY, 0&) End Sub Public Function FindIM() As Long Dim AOL As Long, MDI As Long, child As Long, Caption As String AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) child& = FindWindowEx(MDI&, 0&, "AOL Child", vbNullString) Caption$ = GetCaption(child&) If InStr(Caption$, "Instant Message") = 1 Or InStr(Caption$, "Instant Message") = 2 Or InStr(Caption$, "Instant Message") = 3 Then FindIM& = child& Exit Function Else Do child& = FindWindowEx(MDI&, child&, "AOL Child", vbNullString) Caption$ = GetCaption(child&) If InStr(Caption$, "Instant Message") = 1 Or InStr(Caption$, "Instant Message") = 2 Or InStr(Caption$, "Instant Message") = 3 Then FindIM& = child& Exit Function End If Loop Until child& = 0& End If FindIM& = child& End Function Public Function FindRoom() As Long Dim AOL As Long, MDI As Long, child As Long Dim Rich As Long, AOLList As Long Dim AOLIcon As Long, AOLStatic As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) child& = FindWindowEx(MDI&, 0&, "AOL Child", vbNullString) Rich& = FindWindowEx(child&, 0&, "RICHCNTL", vbNullString) AOLList& = FindWindowEx(child&, 0&, "_AOL_Listbox", vbNullString) AOLIcon& = FindWindowEx(child&, 0&, "_AOL_Icon", vbNullString) AOLStatic& = FindWindowEx(child&, 0&, "_AOL_Static", vbNullString) If Rich& <> 0& And AOLList& <> 0& And AOLIcon& <> 0& And AOLStatic& <> 0& Then FindRoom& = child& Exit Function Else Do child& = FindWindowEx(MDI&, child&, "AOL Child", vbNullString) Rich& = FindWindowEx(child&, 0&, "RICHCNTL", vbNullString) AOLList& = FindWindowEx(child&, 0&, "_AOL_Listbox", vbNullString) AOLIcon& = FindWindowEx(child&, 0&, "_AOL_Icon", vbNullString) AOLStatic& = FindWindowEx(child&, 0&, "_AOL_Static", vbNullString) If Rich& <> 0& And AOLList& <> 0& And AOLIcon& <> 0& And AOLStatic& <> 0& Then FindRoom& = child& Exit Function End If Loop Until child& = 0& End If FindRoom& = child& End Function Public Function FindInfoWindow() As Long Dim AOL As Long, MDI As Long, child As Long Dim AOLCheck As Long, AOLIcon As Long, AOLStatic As Long Dim AOLIcon2 As Long, AOLGlyph As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) child& = FindWindowEx(MDI&, 0&, "AOL Child", vbNullString) AOLCheck& = FindWindowEx(child&, 0&, "_AOL_Checkbox", vbNullString) AOLStatic& = FindWindowEx(child&, 0&, "_AOL_Static", vbNullString) AOLGlyph& = FindWindowEx(child&, 0&, "_AOL_Glyph", vbNullString) AOLIcon& = FindWindowEx(child&, 0&, "_AOL_Icon", vbNullString) AOLIcon2& = FindWindowEx(child&, AOLIcon&, "_AOL_Icon", vbNullString) If AOLCheck& <> 0& And AOLStatic& <> 0& And AOLGlyph& <> 0& And AOLIcon& <> 0& And AOLIcon2& <> 0& Then FindInfoWindow& = child& Exit Function Else Do child& = FindWindowEx(MDI&, child&, "AOL Child", vbNullString) AOLCheck& = FindWindowEx(child&, 0&, "_AOL_Checkbox", vbNullString) AOLStatic& = FindWindowEx(child&, 0&, "_AOL_Static", vbNullString) AOLGlyph& = FindWindowEx(child&, 0&, "_AOL_Glyph", vbNullString) AOLIcon& = FindWindowEx(child&, 0&, "_AOL_Icon", vbNullString) AOLIcon2& = FindWindowEx(child&, AOLIcon&, "_AOL_Icon", vbNullString) If AOLCheck& <> 0& And AOLStatic& <> 0& And AOLGlyph& <> 0& And AOLIcon& <> 0& And AOLIcon2& <> 0& Then FindInfoWindow& = child& Exit Function End If Loop Until child& = 0& End If FindInfoWindow& = child& End Function Public Function RoomCount() As Long Dim AOL As Long, MDI As Long, rMail As Long, rList As Long Dim Count As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) rMail& = FindRoom rList& = FindWindowEx(rMail&, 0&, "_AOL_Listbox", vbNullString) Count& = SendMessage(rList&, LB_GETCOUNT, 0&, 0&) RoomCount& = Count& End Function Public Sub AddRoomToListbox(TheList As ListBox, AddUser As Boolean) On Error Resume Next Dim cProcess As Long, itmHold As Long, ScreenName As String Dim psnHold As Long, rBytes As Long, index As Long, Room As Long Dim rList As Long, sThread As Long, mThread As Long Room& = FindRoom& If Room& = 0& Then Exit Sub rList& = FindWindowEx(Room&, 0&, "_AOL_Listbox", vbNullString) sThread& = GetWindowThreadProcessId(rList, cProcess&) mThread& = OpenProcess(PROCESS_READ Or RIGHTS_REQUIRED, False, cProcess&) If mThread& Then For index& = 0 To SendMessage(rList, LB_GETCOUNT, 0, 0) - 1 ScreenName$ = String$(4, vbNullChar) itmHold& = SendMessage(rList, LB_GETITEMDATA, ByVal CLng(index&), ByVal 0&) itmHold& = itmHold& + 24 Call ReadProcessMemory(mThread&, itmHold&, ScreenName$, 4, rBytes) Call CopyMemory(psnHold&, ByVal ScreenName$, 4) psnHold& = psnHold& + 6 ScreenName$ = String$(16, vbNullChar) Call ReadProcessMemory(mThread&, psnHold&, ScreenName$, Len(ScreenName$), rBytes&) ScreenName$ = Left$(ScreenName$, InStr(ScreenName$, vbNullChar) - 1) If ScreenName$ <> GetUser$ Or AddUser = True Then TheList.AddItem ScreenName$ End If Next index& Call CloseHandle(mThread) End If End Sub Public Sub AddRoomToCombobox(TheCombo As ComboBox, AddUser As Boolean) On Error Resume Next Dim cProcess As Long, itmHold As Long, ScreenName As String Dim psnHold As Long, rBytes As Long, index As Long, Room As Long Dim rList As Long, sThread As Long, mThread As Long Room& = FindRoom& If Room& = 0& Then Exit Sub rList& = FindWindowEx(Room&, 0&, "_AOL_Listbox", vbNullString) sThread& = GetWindowThreadProcessId(rList, cProcess&) mThread& = OpenProcess(PROCESS_READ Or RIGHTS_REQUIRED, False, cProcess&) If mThread& Then For index& = 0 To SendMessage(rList, LB_GETCOUNT, 0, 0) - 1 ScreenName$ = String$(4, vbNullChar) itmHold& = SendMessage(rList, LB_GETITEMDATA, ByVal CLng(index&), ByVal 0&) itmHold& = itmHold& + 24 Call ReadProcessMemory(mThread&, itmHold&, ScreenName$, 4, rBytes) Call CopyMemory(psnHold&, ByVal ScreenName$, 4) psnHold& = psnHold& + 6 ScreenName$ = String$(16, vbNullChar) Call ReadProcessMemory(mThread&, psnHold&, ScreenName$, Len(ScreenName$), rBytes&) ScreenName$ = Left$(ScreenName$, InStr(ScreenName$, vbNullChar) - 1) If ScreenName$ <> GetUser$ Or AddUser = True Then TheCombo.AddItem ScreenName$ End If Next index& Call CloseHandle(mThread) End If If TheCombo.ListCount > 0 Then TheCombo.Text = TheCombo.List(0) End If End Sub Public Sub ChatIgnoreByIndex(index As Long) Dim Room As Long, sList As Long, iWindow As Long Dim iCheck As Long, a As Long, Count As Long Count& = RoomCount& If index& > Count& - 1 Then Exit Sub Room& = FindRoom& sList& = FindWindowEx(Room&, 0&, "_AOL_Listbox", vbNullString) Call SendMessage(sList&, LB_SETCURSEL, index&, 0&) Call PostMessage(sList&, WM_LBUTTONDBLCLK, 0&, 0&) Do DoEvents iWindow& = FindInfoWindow Loop Until iWindow& <> 0& DoEvents iCheck& = FindWindowEx(iWindow&, 0&, "_AOL_Checkbox", vbNullString) DoEvents Do DoEvents a& = SendMessage(iCheck&, BM_GETCHECK, 0&, 0&) Call PostMessage(iCheck&, WM_LBUTTONDOWN, 0&, 0&) DoEvents Call PostMessage(iCheck&, WM_LBUTTONUP, 0&, 0&) DoEvents Loop Until a& <> 0& DoEvents Call PostMessage(iWindow&, WM_CLOSE, 0&, 0&) End Sub Public Sub ChatIgnoreByName(name As String) On Error Resume Next Dim cProcess As Long, itmHold As Long, ScreenName As String Dim psnHold As Long, rBytes As Long, index As Long, Room As Long Dim rList As Long, sThread As Long, mThread As Long Dim lIndex As Long Room& = FindRoom& If Room& = 0& Then Exit Sub rList& = FindWindowEx(Room&, 0&, "_AOL_Listbox", vbNullString) sThread& = GetWindowThreadProcessId(rList, cProcess&) mThread& = OpenProcess(PROCESS_READ Or RIGHTS_REQUIRED, False, cProcess&) If mThread& Then For index& = 0 To SendMessage(rList, LB_GETCOUNT, 0, 0) - 1 ScreenName$ = String$(4, vbNullChar) itmHold& = SendMessage(rList, LB_GETITEMDATA, ByVal CLng(index&), ByVal 0&) itmHold& = itmHold& + 24 Call ReadProcessMemory(mThread&, itmHold&, ScreenName$, 4, rBytes) Call CopyMemory(psnHold&, ByVal ScreenName$, 4) psnHold& = psnHold& + 6 ScreenName$ = String$(16, vbNullChar) Call ReadProcessMemory(mThread&, psnHold&, ScreenName$, Len(ScreenName$), rBytes&) ScreenName$ = Left$(ScreenName$, InStr(ScreenName$, vbNullChar) - 1) If ScreenName$ <> GetUser$ And LCase(ScreenName$) = LCase(name$) Then lIndex& = index& Call ChatIgnoreByIndex(lIndex&) DoEvents Exit Sub End If Next index& Call CloseHandle(mThread) End If End Sub Public Function ChatLineSN(TheChatLine As String) As String If InStr(TheChatLine, ":") = 0 Then ChatLineSN = "" Exit Function End If ChatLineSN = Left(TheChatLine, InStr(TheChatLine, ":") - 1) End Function Public Function ChatLineMsg(TheChatLine As String) As String If InStr(TheChatLine, Chr(9)) = 0 Then ChatLineMsg = "" Exit Function End If ChatLineMsg = Right(TheChatLine, Len(TheChatLine) - InStr(TheChatLine, Chr(9))) End Function Public Sub Scroll(ScrollString As String) Dim CurLine As String, Count As Long, ScrollIt As Long Dim sProgress As Long If FindRoom& = 0 Then Exit Sub If ScrollString$ = "" Then Exit Sub Count& = LineCount(ScrollString$) sProgress& = 1 For ScrollIt& = 1 To Count& CurLine$ = LineFromString(ScrollString$, ScrollIt&) If Len(CurLine$) > 3 Then If Len(CurLine$) > 92 Then CurLine$ = Left(CurLine$, 92) End If Call ChatSend(CurLine$) Pause 0.7 End If sProgress& = sProgress& + 1 If sProgress& > 4 Then sProgress& = 1 Pause 0.5 End If Next ScrollIt& End Sub Public Sub WaitForOKOrRoom(Room As String) Dim RoomTitle As String, FullWindow As Long, FullButton As Long Room$ = LCase(ReplaceString(Room$, " ", "")) Do DoEvents RoomTitle$ = GetCaption(FindRoom&) RoomTitle$ = LCase(ReplaceString(Room$, " ", "")) FullWindow& = FindWindow("#32770", "America Online") FullButton& = FindWindowEx(FullWindow&, 0&, "Button", "OK") Loop Until (FullWindow& <> 0& And FullButton& <> 0&) Or Room$ = RoomTitle$ DoEvents If FullWindow& <> 0& Then Do DoEvents Call SendMessage(FullButton&, WM_KEYDOWN, VK_SPACE, 0&) Call SendMessage(FullButton&, WM_KEYUP, VK_SPACE, 0&) Call SendMessage(FullButton&, WM_KEYDOWN, VK_SPACE, 0&) Call SendMessage(FullButton&, WM_KEYUP, VK_SPACE, 0&) FullWindow& = FindWindow("#32770", "America Online") FullButton& = FindWindowEx(FullWindow&, 0&, "Button", "OK") Loop Until FullWindow& = 0& And FullButton& = 0& End If DoEvents End Sub Public Sub MemberRoom(Room As String) Call Keyword("aol://2719:61-2-" & Room$) End Sub Public Sub PublicRoom(Room As String) Call Keyword("aol://2719:21-2-" & Room$) End Sub Public Sub PrivateRoom(Room As String) Call Keyword("aol://2719:2-2-" & Room$) End Sub Public Sub InstantMessage(Person As String, Message As String) Dim AOL As Long, MDI As Long, IM As Long, Rich As Long Dim SendButton As Long, OK As Long, Button As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) Call Keyword("aol://9293:" & Person$) Do DoEvents IM& = FindWindowEx(MDI&, 0&, "AOL Child", "Send Instant Message") Rich& = FindWindowEx(IM&, 0&, "RICHCNTL", vbNullString) SendButton& = FindWindowEx(IM&, 0&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) SendButton& = FindWindowEx(IM&, SendButton&, "_AOL_Icon", vbNullString) Loop Until IM& <> 0& And Rich& <> 0& And SendButton& <> 0& Call SendMessageByString(Rich&, WM_SETTEXT, 0&, Message$) Call SendMessage(SendButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(SendButton&, WM_LBUTTONUP, 0&, 0&) Do DoEvents OK& = FindWindow("#32770", "America Online") IM& = FindWindowEx(MDI&, 0&, "AOL Child", "Send Instant Message") Loop Until OK& <> 0& Or IM& = 0& If OK& <> 0& Then Button& = FindWindowEx(OK&, 0&, "Button", vbNullString) Call PostMessage(Button&, WM_KEYDOWN, VK_SPACE, 0&) Call PostMessage(Button&, WM_KEYUP, VK_SPACE, 0&) Call PostMessage(IM&, WM_CLOSE, 0&, 0&) End If End Sub Public Function CheckIMs(Person As String) As Boolean Dim AOL As Long, MDI As Long, IM As Long, Rich As Long Dim Available As Long, Available1 As Long, Available2 As Long Dim Available3 As Long, oWindow As Long, oButton As Long Dim oStatic As Long, oString As String AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) Call Keyword("aol://9293:" & Person$) Do DoEvents IM& = FindWindowEx(MDI&, 0&, "AOL Child", "Send Instant Message") Rich& = FindWindowEx(IM&, 0&, "RICHCNTL", vbNullString) Available1& = FindWindowEx(IM&, 0&, "_AOL_Icon", vbNullString) Available2& = FindWindowEx(IM&, Available1&, "_AOL_Icon", vbNullString) Available3& = FindWindowEx(IM&, Available2&, "_AOL_Icon", vbNullString) Available& = FindWindowEx(IM&, Available3&, "_AOL_Icon", vbNullString) Available& = FindWindowEx(IM&, Available&, "_AOL_Icon", vbNullString) Available& = FindWindowEx(IM&, Available&, "_AOL_Icon", vbNullString) Available& = FindWindowEx(IM&, Available&, "_AOL_Icon", vbNullString) Available& = FindWindowEx(IM&, Available&, "_AOL_Icon", vbNullString) Available& = FindWindowEx(IM&, Available&, "_AOL_Icon", vbNullString) Available& = FindWindowEx(IM&, Available&, "_AOL_Icon", vbNullString) Loop Until IM& <> 0& And Rich <> 0& And Available& <> 0& And Available& <> Available1& And Available& <> Available2& And Available& <> Available3& DoEvents Call SendMessage(Available&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(Available&, WM_LBUTTONUP, 0&, 0&) Do DoEvents oWindow& = FindWindow("#32770", "America Online") oButton& = FindWindowEx(oWindow&, 0&, "Button", "OK") Loop Until oWindow& <> 0& And oButton& <> 0& Do DoEvents oStatic& = FindWindowEx(oWindow&, 0&, "Static", vbNullString) oStatic& = FindWindowEx(oWindow&, oStatic&, "Static", vbNullString) oString$ = GetText(oStatic) Loop Until oStatic& <> 0& And Len(oString$) > 15 If InStr(oString$, "is online and able to receive") <> 0 Then CheckIMs = True Else CheckIMs = False End If Call SendMessage(oButton&, WM_KEYDOWN, VK_SPACE, 0&) Call SendMessage(oButton&, WM_KEYUP, VK_SPACE, 0&) Call PostMessage(IM&, WM_CLOSE, 0&, 0&) End Function Public Sub IMIgnore(Person As String) Call InstantMessage("$IM_OFF, " & Person$, "=)") End Sub Public Sub IMUnIgnore(Person As String) Call InstantMessage("$IM_ON, " & Person$, "=)") End Sub Public Sub IMsOff() Call InstantMessage("$IM_OFF", "=)") End Sub Public Sub IMsOn() Call InstantMessage("$IM_ON", "=)") End Sub Public Function IMSender() As String Dim IM As Long, Caption As String Caption$ = GetCaption(FindIM&) If InStr(Caption$, ":") = 0& Then IMSender$ = "" Exit Function Else IMSender$ = Right(Caption$, Len(Caption$) - InStr(Caption$, ":") - 1) End If End Function Public Function IMText() As String Dim Rich As Long Rich& = FindWindowEx(FindIM&, 0&, "RICHCNTL", vbNullString) IMText$ = GetText(Rich&) End Function Public Function IMLastMsg() As String Dim Rich As Long, MsgString As String, Spot As Long Dim NewSpot As Long Rich& = FindWindowEx(FindIM&, 0&, "RICHCNTL", vbNullString) MsgString$ = GetText(Rich&) NewSpot& = InStr(MsgString$, Chr(9)) Do Spot& = NewSpot& NewSpot& = InStr(Spot& + 1, MsgString$, Chr(9)) Loop Until NewSpot& <= 0& MsgString$ = Right(MsgString$, Len(MsgString$) - Spot& - 1) IMLastMsg$ = Left(MsgString$, Len(MsgString$) - 1) End Function Public Sub IMRespond(Msg As String) Dim IM As Long, Rich As Long, icon As Long IM& = FindIM& If IM& = 0& Then Exit Sub Rich& = FindWindowEx(IM&, 0&, "RICHCNTL", vbNullString) Rich& = FindWindowEx(IM&, Rich&, "RICHCNTL", vbNullString) icon& = FindWindowEx(IM&, 0&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) icon& = FindWindowEx(IM&, icon&, "_AOL_Icon", vbNullString) Call SendMessageByString(Rich&, WM_SETTEXT, 0&, Msg$) DoEvents Call SendMessage(icon&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(icon&, WM_LBUTTONUP, 0&, 0&) End Sub Public Sub Keyword(KW As String) Dim AOL As Long, tool As Long, Toolbar As Long Dim Combo As Long, EditWin As Long AOL& = FindWindow("AOL Frame25", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) Combo& = FindWindowEx(Toolbar&, 0&, "_AOL_Combobox", vbNullString) EditWin& = FindWindowEx(Combo&, 0&, "Edit", vbNullString) Call SendMessageByString(EditWin&, WM_SETTEXT, 0&, KW$) Call SendMessageLong(EditWin&, WM_CHAR, VK_SPACE, 0&) Call SendMessageLong(EditWin&, WM_CHAR, VK_RETURN, 0&) End Sub Public Function DoubleText(MyString As String) As String Dim NewString As String, CurChar As String Dim DoIt As Long If MyString$ <> "" Then For DoIt& = 1 To Len(MyString$) CurChar$ = LineChar(MyString$, DoIt&) NewString$ = NewString$ & CurChar$ & CurChar$ Next DoIt& DoubleText$ = NewString$ End If End Function Public Function LineChar(TheText As String, CharNum As Long) As String Dim TextLength As Long, NewText As String TextLength& = Len(TheText$) If CharNum& > TextLength& Then Exit Function End If NewText$ = Left(TheText$, CharNum&) NewText$ = Right(NewText$, 1) LineChar$ = NewText$ End Function Public Function LineCount(MyString As String) As Long Dim Spot As Long, Count As Long If Len(MyString$) < 1 Then LineCount& = 0& Exit Function End If Spot& = InStr(MyString$, Chr(13)) If Spot& <> 0& Then LineCount& = 1 Do Spot& = InStr(Spot + 1, MyString$, Chr(13)) If Spot& <> 0& Then LineCount& = LineCount& + 1 End If Loop Until Spot& = 0& End If LineCount& = LineCount& + 1 End Function Public Function LineFromString(MyString As String, Line As Long) As String Dim theline As String, Count As Long Dim FSpot As Long, LSpot As Long, DoIt As Long Count& = LineCount(MyString$) If Line& > Count& Then Exit Function End If If Line& = 1 And Count& = 1 Then LineFromString$ = MyString$ Exit Function End If If Line& = 1 Then theline$ = Left(MyString$, InStr(MyString$, Chr(13)) - 1) theline$ = ReplaceString(theline$, Chr(13), "") theline$ = ReplaceString(theline$, Chr(10), "") LineFromString$ = theline$ Exit Function Else FSpot& = InStr(MyString$, Chr(13)) For DoIt& = 1 To Line& - 1 LSpot& = FSpot& FSpot& = InStr(FSpot& + 1, MyString$, Chr(13)) Next DoIt If FSpot = 0 Then FSpot = Len(MyString$) End If theline$ = Mid(MyString$, LSpot&, FSpot& - LSpot& + 1) theline$ = ReplaceString(theline$, Chr(13), "") theline$ = ReplaceString(theline$, Chr(10), "") LineFromString$ = theline$ End If End Function Public Function ReplaceString(MyString As String, ToFind As String, ReplaceWith As String) As String Dim Spot As Long, NewSpot As Long, LeftString As String Dim RightString As String, NewString As String Spot& = InStr(LCase(MyString$), LCase(ToFind)) NewSpot& = Spot& Do If NewSpot& > 0& Then LeftString$ = Left(MyString$, NewSpot& - 1) If Spot& + Len(ToFind$) <= Len(MyString$) Then RightString$ = Right(MyString$, Len(MyString$) - NewSpot& - Len(ToFind$) + 1) Else RightString = "" End If NewString$ = LeftString$ & ReplaceWith$ & RightString$ MyString$ = NewString$ Else NewString$ = MyString$ End If Spot& = NewSpot& + Len(ReplaceWith$) If Spot& > 0 Then NewSpot& = InStr(Spot&, LCase(MyString$), LCase(ToFind$)) End If Loop Until NewSpot& < 1 ReplaceString$ = NewString$ End Function Public Function ReverseString(MyString As String) As String Dim TempString As String, StringLength As Long Dim Count As Long, NextChr As String, NewString As String TempString$ = MyString$ StringLength& = Len(TempString$) Do While Count& <= StringLength& Count& = Count& + 1 NextChr$ = Mid$(TempString$, Count&, 1) NewString$ = NextChr$ & NewString$ Loop ReverseString$ = NewString$ End Function Public Function SwitchStrings(MyString As String, String1 As String, String2 As String) As String Dim TempString As String, Spot1 As Long, Spot2 As Long Dim Spot As Long, ToFind As String, ReplaceWith As String Dim NewSpot As Long, LeftString As String, RightString As String Dim NewString As String If Len(String2) > Len(String1) Then TempString$ = String1$ String1$ = String2$ String2$ = TempString$ End If Spot1& = InStr(MyString$, String1$) Spot2& = InStr(MyString$, String2$) If Spot1& = 0& And Spot2& = 0& Then SwitchStrings$ = MyString$ Exit Function End If If Spot1& < Spot2& Or Spot2& = 0 Or Len(String1$) = Len(String2$) Then If Spot1& > 0 Then Spot& = Spot1& ToFind$ = String1$ ReplaceWith$ = String2$ End If End If If Spot2& < Spot1& Or Spot1& = 0& Then If Spot2& > 0& Then Spot& = Spot2& ToFind$ = String2$ ReplaceWith$ = String1$ End If End If If Spot1& = 0& And Spot2& = 0& Then SwitchStrings$ = MyString$ Exit Function End If NewSpot& = Spot& Do If NewSpot& > 0& Then LeftString$ = Left(MyString$, NewSpot& - 1) If Spot& + Len(ToFind$) <= Len(MyString$) Then RightString$ = Right(MyString$, Len(MyString$) - NewSpot& - Len(ToFind$) + 1) Else RightString$ = "" End If NewString$ = LeftString$ & ReplaceWith$ & RightString$ MyString$ = NewString$ Else NewString$ = MyString$ End If Spot& = NewSpot + Len(ReplaceWith$) - Len(ToFind$) + 1 If Spot& <> 0& Then Spot1& = InStr(Spot&, MyString$, String1$) Spot2& = InStr(Spot&, MyString$, String2$) End If If Spot1& = 0& And Spot2& = 0& Then SwitchStrings$ = MyString$ Exit Function End If If Spot1& < Spot2& Or Spot2& = 0& Or Len(String1$) = Len(String2$) Then If Spot1& > 0& Then Spot& = Spot1& ToFind$ = String1$ ReplaceWith$ = String2$ End If End If If Spot2& < Spot1& Or Spot1& = 0& Then If Spot2& > 0& Then Spot& = Spot2& ToFind$ = String2$ ReplaceWith$ = String1$ End If End If If Spot1& = 0& And Spot2& = 0& Then Spot& = 0& End If If Spot& > 0& Then NewSpot& = InStr(Spot&, MyString$, ToFind$) Else NewSpot& = Spot& End If Loop Until NewSpot& < 1& SwitchStrings$ = NewString$ End Function Public Function MacroFilter_BCurve(MyString As String) As String MyString$ = ReplaceString(MyString$, "\", "]") MyString$ = ReplaceString(MyString$, "/", "[") MacroFilter_BCurve$ = MyString$ End Function Public Function MacroFilter_BubbleTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»", "░'░'░'") MacroFilter_BubbleTop$ = MyString$ End Function Public Function MacroFilter_BubbleTop2(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»", "║░░░'") MacroFilter_BubbleTop2$ = MyString$ End Function Public Function MacroFilter_ClawTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»»»»", "»\(»)/" & Chr(34) & "»") MacroFilter_ClawTop$ = MyString$ End Function Public Function MacroFilter_Curve(MyString As String) As String MyString$ = ReplaceString(MyString$, "\", ")") MyString$ = ReplaceString(MyString$, "/", "(") MacroFilter_Curve$ = MyString$ End Function Public Function MacroFilter_CurveBottom(MyString As String) As String MyString$ = ReplaceString(MyString$, "___", "ε,ε,ε,") MacroFilter_CurveBottom$ = MyString$ End Function Public Function MacroFilter_Darken(MyString As String) As String MyString$ = ReplaceString(MyString$, "ª", "|") MyString$ = ReplaceString(MyString$, ",┤", "/ ") MyString$ = ReplaceString(MyString$, "`,", " \") MyString$ = ReplaceString(MyString$, ":", ";") MacroFilter_Darken$ = MyString$ End Function Public Function MacroFilter_Destroy(MyString As String) As String MyString$ = ReplaceString(MyString$, " ", "") MacroFilter_Destroy$ = MyString$ End Function Public Function MacroFilter_DrippingTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»»»", "»\,/»'v'") MacroFilter_DrippingTop$ = MyString$ End Function Public Function MacroFilter_Electric(MyString As String) As String MyString$ = ReplaceString(MyString$, " |", "--^v^|") MyString$ = ReplaceString(MyString$, "| ", "|^v^--") MacroFilter_Electric$ = MyString$ End Function Public Function MacroFilter_FireyBottom(MyString As String) As String MyString$ = ReplaceString(MyString$, "___", "_')\.") MacroFilter_FireyBottom$ = MyString$ End Function Public Function MacroFilter_Ghost(MyString As String) As String MyString$ = ReplaceString(MyString$, "»", "¿¿") MyString$ = ReplaceString(MyString$, "/", ".╖") MyString$ = ReplaceString(MyString$, "\", "╖.") MyString$ = ReplaceString(MyString$, "|", ":") MyString$ = ReplaceString(MyString$, "_", "..") MyString$ = ReplaceString(MyString$, "ª", ":") MacroFilter_Ghost = MyString$ End Function Public Function MacroFilter_Indent(MyString As String) As String Dim NewLine As String, OrgLen As Long, NumOfLines As Long Dim OrgCount As Long, SpaceIt As Long, CurLine As String Dim NewString As String NewLine$ = Chr(13) & Chr(10) OrgLen& = Len(MyString$) MyString$ = MyString$ & NewLine$ NumOfLines& = LineCount(MyString$) OrgCount& = NumOfLines& For SpaceIt& = 1 To NumOfLines& DoEvents CurLine$ = LineFromString(MyString$, SpaceIt&) NewString$ = NewString$ & " " & CurLine$ & NewLine$ Next SpaceIt& MyString$ = Left(NewString$, OrgLen& + OrgCount& - 1) MacroFilter_Indent$ = MyString$ End Function Public Function MacroFilter_JaG(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»»", "»`v┤»") MacroFilter_JaG$ = MyString$ End Function Public Function MacroFilter_Lighten(MyString As String) As String MyString$ = ReplaceString(MyString$, "|", "ª") MyString$ = ReplaceString(MyString$, "/ ", ",┤") MyString$ = ReplaceString(MyString$, "\ ", "`,") MyString$ = ReplaceString(MyString$, " /", ",┤") MyString$ = ReplaceString(MyString$, " \", "`,") MyString$ = ReplaceString(MyString$, ";", ":") MacroFilter_Lighten$ = MyString$ End Function Public Function MacroFilter_PCurve(MyString As String) As String MyString$ = ReplaceString(MyString$, "\", "}") MyString$ = ReplaceString(MyString$, "/", "{") MacroFilter_PCurve$ = MyString$ End Function Public Function MacroFilter_PsYTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»", "`'»`ô") MacroFilter_PsYTop$ = MyString$ End Function Public Function MacroFilter_RandomBottom(MyString As String) As String MyString$ = ReplaceString(MyString$, "___", "-éäé╕é") MacroFilter_RandomBottom$ = MyString$ End Function Public Function MacroFilter_Rapid(MyString As String) As String MyString$ = ReplaceString(MyString$, " |", "-=|") MyString$ = ReplaceString(MyString$, "| ", "|=-") MacroFilter_Rapid$ = MyString$ End Function Public Function MacroFilter_ReplaceLines(MyString As String) As String MyString$ = ReplaceString(MyString$, "|", "ª") MacroFilter_ReplaceLines$ = MyString$ End Function Public Function MacroFilter_ReplaceSlants(MyString As String) As String MyString$ = ReplaceString(MyString$, "/ ", ",┤") MyString$ = ReplaceString(MyString$, "\ ", "`,") MyString$ = ReplaceString(MyString$, " /", ",┤") MyString$ = ReplaceString(MyString$, " \", "`,") MacroFilter_ReplaceSlants$ = MyString$ End Function Public Function MacroFilter_Reverse(MyString As String) As String Dim CurChar As Long, NewLine As String, MyText As String Dim NumOfLines As Long, ReverseIt As Long, CheckLen As Long Dim CurLine As String, NewString As String If MyString$ <> "" Then NewLine$ = Chr(13) & Chr(10) MyText$ = MyString$ & NewLine$ NumOfLines& = LineCount(MyText$) For ReverseIt& = 1 To NumOfLines CurLine$ = LineFromString(MyText$, ReverseIt&) CurLine$ = ReverseString(CurLine$) NewString$ = NewString$ & CurLine$ & NewLine$ Next ReverseIt& NewString$ = SwitchStrings(NewString$, "/", "\") NewString$ = SwitchStrings(NewString$, "[", "]") NewString$ = SwitchStrings(NewString$, "{", "}") NewString$ = SwitchStrings(NewString$, "(", ")") NewString$ = SwitchStrings(NewString$, "½", "╗") NewString$ = SwitchStrings(NewString$, "ï", "¢") NewString$ = SwitchStrings(NewString$, "<", ">") CheckLen& = Len(NewString$) NewString$ = Left(NewString$, CheckLen& - 4) MacroFilter_Reverse$ = NewString$ End If End Function Public Function MacroFilter_RoundedTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "|»»", "|'ÿ»") MyString$ = ReplaceString(MyString$, "ª»»", "ª'ÿ»") MacroFilter_RoundedTop$ = MyString$ End Function Public Function MacroFilter_Shadow(MyString As String) As String MyString$ = ReplaceString(MyString$, " |", ";|") MyString$ = ReplaceString(MyString$, "| ", "|;") MacroFilter_Shadow$ = MyString$ End Function Public Function MacroFilter_Smear(MyString As String) As String MyString$ = ReplaceString(MyString$, "|", "ª") MyString$ = ReplaceString(MyString$, " ª", ".:;ª") MyString$ = ReplaceString(MyString$, " ª", ":;ª") MyString$ = ReplaceString(MyString$, " ª", ";ª") MyString$ = ReplaceString(MyString$, " /", ".:;/") MyString$ = ReplaceString(MyString$, " /", ":;/") MyString$ = ReplaceString(MyString$, " /", ";/") MyString$ = ReplaceString(MyString$, " \", ".:;\") MyString$ = ReplaceString(MyString$, " \", ":;\") MyString$ = ReplaceString(MyString$, " \", ";\") MyString$ = ReplaceString(MyString$, " '", ".:;'") MyString$ = ReplaceString(MyString$, " '", ":;'") MyString$ = ReplaceString(MyString$, " '", ";'") MacroFilter_Smear$ = MyString$ End Function Public Function MacroFilter_SpikeBottom(MyString As String) As String MyString$ = ReplaceString(MyString$, "___", "╕í╕í╕í") MacroFilter_SpikeBottom$ = MyString$ End Function Public Function MacroFilter_Straighten(MyString As String) As String MyString$ = ReplaceString(MyString$, "}", "\") MyString$ = ReplaceString(MyString$, "{", "/") MyString$ = ReplaceString(MyString$, "]", "\") MyString$ = ReplaceString(MyString$, "[", "/") MyString$ = ReplaceString(MyString$, ")", "\") MyString$ = ReplaceString(MyString$, "(", "/") MacroFilter_Straighten$ = MyString$ End Function Public Function MacroFilter_Stretch(MyString As String) As String Dim CurChar As Long, StretchIt As Long, MyText As String Dim NewLine As String, NumOfLines As Long, CheckLen As Long Dim CurLine As String, NewString As String If MyString$ <> "" Then NewLine$ = Chr(13) & Chr(10) MyText$ = MyString$ & NewLine$ NumOfLines& = LineCount(MyText$) For StretchIt& = 1 To NumOfLines& CurLine$ = LineFromString(MyText, StretchIt&) CurLine$ = DoubleText(CurLine$) NewString$ = NewString$ & CurLine$ & NewLine$ Next StretchIt& CheckLen& = Len(NewString$) NewString$ = Left(NewString$, CheckLen& - 4) MacroFilter_Stretch$ = NewString$ End If End Function Public Function MacroFilter_StarTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»", "`**»") MacroFilter_StarTop$ = MyString$ End Function Public Function MacroFilter_ThickenBottom(MyString As String) As String MyString$ = ReplaceString(MyString$, "___", "╕é╕é╕é") MacroFilter_ThickenBottom$ = MyString$ End Function Public Function MacroFilter_ThickenTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»", "öæöæöæ") MacroFilter_ThickenTop$ = MyString$ End Function Public Function MacroFilter_TreadTop(MyString As String) As String MyString$ = ReplaceString(MyString$, "»»»", "¬æ¬æ¬æ") MacroFilter_TreadTop$ = MyString$ End Function Public Function MacroFilter_UnIndent(MyString As String) As String Dim OrgLen As Long, NewLine As String, NumOfLines As Long Dim OrgCount As Long, CurLine As String, NewString As String Dim SpaceIt As Long OrgLen& = Len(MyString$) NewLine$ = Chr(13) & Chr(10) MyString$ = MyString$ & NewLine$ NumOfLines& = LineCount(MyString) OrgCount& = NumOfLines& For SpaceIt& = 1 To NumOfLines& CurLine$ = LineFromString(MyString$, SpaceIt&) If Len(CurLine$) < 1 Then NewString$ = NewString$ & CurLine$ & NewLine$ Else NewString$ = NewString$ & Right(CurLine$, Len(CurLine$) - 1) & NewLine$ End If Next SpaceIt& MyString$ = Left(NewString$, Len(NewString$) - 4) MacroFilter_UnIndent$ = MyString$ End Function Public Function MacroFilter_UpsideDown(MyString As String) As String Dim CharCheck As Long, CurChar As Long, CurLine As String Dim FlipIt As Long, MyLine As Long, MyText As String Dim NewLine As String, NumOfLines As Long Dim CheckLen As Long, NewString As String If MyString$ <> "" Then NewLine$ = Chr(13) & Chr(10) MyText$ = MyString$ & NewLine$ NumOfLines& = LineCount(MyText$) MyLine& = NumOfLines& - 1 For FlipIt& = 1 To NumOfLines& DoEvents CurLine$ = LineFromString(MyText$, MyLine&) NewString$ = NewString$ & CurLine$ & NewLine$ MyLine& = MyLine& - 1 Next FlipIt& NewString$ = Left(NewString$, Len(NewString$) - 4) MyString$ = NewString$ CheckLen& = Len(NewString$) NewString$ = SwitchStrings(MyString$, "/", "\") MyString$ = SwitchStrings(MyString$, "»", "_") MyString$ = SwitchStrings(MyString$, ",", "'") MyString$ = ReplaceString(MyString$, ",,", ",") MyString$ = ReplaceString(MyString$, "`", ",") MyString$ = SwitchStrings(MyString$, "┤", ".") MyString$ = ReplaceString(MyString$, "æ", ".") MyString$ = ReplaceString(MyString$, "Æ", ",") MyString$ = SwitchStrings(MyString$, "ê", "╕") MyString$ = SwitchStrings(MyString$, "ä", Chr(34)) MacroFilter_UpsideDown$ = MyString$ End If End Function Public Function FileExists(sFileName As String) As Boolean If Len(sFileName$) = 0 Then FileExists = False Exit Function End If If Len(Dir$(sFileName$)) Then FileExists = True Else FileExists = False End If End Function Sub LoadText(txtLoad As TextBox, Path As String) Dim TextString As String On Error Resume Next Open Path$ For Input As #1 TextString$ = Input(LOF(1), #1) Close #1 txtLoad.Text = TextString$ End Sub Sub SaveText(txtSave As TextBox, Path As String) Dim TextString As String On Error Resume Next TextString$ = txtSave.Text Open Path$ For Output As #1 Print #1, TextString$ Close #1 End Sub Public Sub Loadlistbox(Directory As String, TheList As ListBox) Dim MyString As String On Error Resume Next Open Directory$ For Input As #1 While Not EOF(1) Input #1, MyString$ DoEvents TheList.AddItem MyString$ Wend Close #1 End Sub Public Sub Load2listboxes(Directory As String, ListA As ListBox, ListB As ListBox) Dim MyString As String, aString As String, bString As String On Error Resume Next Open Directory$ For Input As #1 While Not EOF(1) Input #1, MyString$ aString$ = Left(MyString$, InStr(MyString$, "*") - 1) bString$ = Right(MyString$, Len(MyString$) - InStr(MyString$, "*")) DoEvents ListA.AddItem aString$ ListB.AddItem bString$ Wend Close #1 End Sub Public Sub SaveListBox(Directory As String, TheList As ListBox) Dim SaveList As Long On Error Resume Next Open Directory$ For Output As #1 For SaveList& = 0 To TheList.ListCount - 1 Print #1, TheList.List(SaveList&) Next SaveList& Close #1 End Sub Public Sub Save2ListBoxes(Directory As String, ListA As ListBox, ListB As ListBox) Dim SaveLists As Long On Error Resume Next Open Directory$ For Output As #1 For SaveLists& = 0 To ListA.ListCount - 1 Print #1, ListA.List(SaveLists&) & "*" & ListB.List(SaveLists) Next SaveLists& Close #1 End Sub Public Sub SaveComboBox(ByVal Directory As String, Combo As ComboBox) Dim SaveCombo As Long On Error Resume Next Open Directory$ For Output As #1 For SaveCombo& = 0 To Combo.ListCount - 1 Print #1, Combo.List(SaveCombo&) Next SaveCombo& Close #1 End Sub Public Sub LoadComboBox(ByVal Directory As String, Combo As ComboBox) Dim MyString As String On Error Resume Next Open Directory$ For Input As #1 While Not EOF(1) Input #1, MyString$ DoEvents Combo.AddItem MyString$ Wend Close #1 End Sub Public Function FileGetAttributes(TheFile As String) As Integer Dim SafeFile As String SafeFile$ = Dir(TheFile$) If SafeFile$ <> "" Then FileGetAttributes% = GetAttr(TheFile$) End If End Function Public Sub FileSetNormal(TheFile As String) Dim SafeFile As String SafeFile$ = Dir(TheFile$) If SafeFile$ <> "" Then SetAttr TheFile$, vbNormal End If End Sub Public Sub FileSetReadOnly(TheFile As String) Dim SafeFile As String SafeFile$ = Dir(TheFile$) If SafeFile$ <> "" Then SetAttr TheFile$, vbReadOnly End If End Sub Public Sub FileSetHidden(TheFile As String) Dim SafeFile As String SafeFile$ = Dir(TheFile$) If SafeFile$ <> "" Then SetAttr TheFile$, vbHidden End If End Sub Public Function GetFromINI(Section As String, Key As String, Directory As String) As String Dim strBuffer As String strBuffer = String(750, Chr(0)) Key$ = LCase$(Key$) GetFromINI$ = Left(strBuffer, GetPrivateProfileString(Section$, ByVal Key$, "", strBuffer, Len(strBuffer), Directory$)) End Function Public Sub WriteToINI(Section As String, Key As String, KeyValue As String, Directory As String) Call WritePrivateProfileString(Section$, UCase$(Key$), KeyValue$, Directory$) End Sub Public Function CheckIfMaster() As Boolean Dim AOL As Long, MDI As Long, pWindow As Long Dim pButton As Long, Modal As Long, mStatic As Long Dim mString As String AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDICLIENT", vbNullString) Call Keyword("aol://4344:1580.prntcon.12263709.564517913") Do DoEvents pWindow& = FindWindowEx(MDI&, 0&, "AOL Child", "Parental Controls") pButton& = FindWindowEx(pWindow&, 0&, "_AOL_Icon", vbNullString) Loop Until pWindow& <> 0& And pButton& <> 0& Pause 0.3 Do DoEvents Call PostMessage(pButton&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(pButton&, WM_LBUTTONUP, 0&, 0&) Pause 0.8 Modal& = FindWindow("_AOL_Modal", vbNullString) mStatic& = FindWindowEx(Modal&, 0&, "_AOL_Static", vbNullString) mString$ = GetText(mStatic&) Loop Until Modal& <> 0 And mStatic& <> 0& And mString$ <> "" mString$ = ReplaceString(mString$, Chr(10), "") mString$ = ReplaceString(mString$, Chr(13), "") If mString$ = "Set Parental Controls" Then CheckIfMaster = True Else CheckIfMaster = False End If Call PostMessage(Modal&, WM_CLOSE, 0&, 0&) DoEvents Call PostMessage(pWindow&, WM_CLOSE, 0&, 0&) End Function Public Function GetCaption(WindowHandle As Long) As String Dim buffer As String, TextLength As Long TextLength& = GetWindowTextLength(WindowHandle&) buffer$ = String(TextLength&, 0&) Call GetWindowText(WindowHandle&, buffer$, TextLength& + 1) GetCaption$ = buffer$ End Function Public Function GetListText(WindowHandle As Long) As String Dim buffer As String, TextLength As Long TextLength& = SendMessage(WindowHandle&, LB_GETTEXTLEN, 0&, 0&) buffer$ = String(TextLength&, 0&) Call SendMessageByString(WindowHandle&, LB_GETTEXT, TextLength& + 1, buffer$) GetListText$ = buffer$ End Function Public Function GetText(WindowHandle As Long) As String Dim buffer As String, TextLength As Long TextLength& = SendMessage(WindowHandle&, WM_GETTEXTLENGTH, 0&, 0&) buffer$ = String(TextLength&, 0&) Call SendMessageByString(WindowHandle&, WM_GETTEXT, TextLength& + 1, buffer$) GetText$ = buffer$ End Function Public Sub Button(mButton As Long) Call SendMessage(mButton&, WM_KEYDOWN, VK_SPACE, 0&) Call SendMessage(mButton&, WM_KEYUP, VK_SPACE, 0&) End Sub Public Sub icon(aIcon As Long) Call SendMessage(aIcon&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(aIcon&, WM_LBUTTONUP, 0&, 0&) End Sub Public Sub CloseWindow(Window As Long) Call PostMessage(Window&, WM_CLOSE, 0&, 0&) End Sub Public Function ProfileGet(ScreenName As String) As String Dim AOL As Long, tool As Long, Toolbar As Long Dim ToolIcon As Long, DoThis As Long, sMod As Long Dim MDI As Long, pgWindow As Long, pgEdit As Long, pgButton As Long Dim pWindow As Long, pTextWindow As Long, pString As String Dim NoWindow As Long, OKButton As Long, CurPos As POINTAPI Dim WinVis As Long AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) tool& = FindWindowEx(AOL&, 0&, "AOL Toolbar", vbNullString) Toolbar& = FindWindowEx(tool&, 0&, "_AOL_Toolbar", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, 0&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) ToolIcon& = FindWindowEx(Toolbar&, ToolIcon&, "_AOL_Icon", vbNullString) Call GetCursorPos(CurPos) Call SetCursorPos(Screen.width, Screen.height) Call PostMessage(ToolIcon&, WM_LBUTTONDOWN, 0&, 0&) Call PostMessage(ToolIcon&, WM_LBUTTONUP, 0&, 0&) Do sMod& = FindWindow("#32768", vbNullString) WinVis& = IsWindowVisible(sMod&) Loop Until WinVis& = 1 Call PostMessage(sMod&, WM_KEYDOWN, VK_UP, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_UP, 0&) Call PostMessage(sMod&, WM_KEYDOWN, VK_UP, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_UP, 0&) Call PostMessage(sMod&, WM_KEYDOWN, VK_RETURN, 0&) Call PostMessage(sMod&, WM_KEYUP, VK_RETURN, 0&) Call SetCursorPos(CurPos.X, CurPos.Y) Do DoEvents pgWindow& = FindWindowEx(MDI&, 0&, "AOL Child", "Get a Member's Profile") pgEdit& = FindWindowEx(pgWindow&, 0&, "_AOL_Edit", vbNullString) pgButton& = FindWindowEx(pgWindow&, 0&, "_AOL_Icon", vbNullString) Loop Until pgWindow& <> 0& And pgEdit& <> 0& And pgButton& <> 0& Call SendMessageByString(pgEdit&, WM_SETTEXT, 0&, ScreenName$) Call SendMessage(pgButton&, WM_LBUTTONDOWN, 0&, 0&) Call SendMessage(pgButton&, WM_LBUTTONUP, 0&, 0&) DoEvents Do DoEvents pWindow& = FindWindowEx(MDI&, 0&, "AOL Child", "Member Profile") pTextWindow& = FindWindowEx(pWindow&, 0&, "_AOL_View", vbNullString) pString$ = GetText(pTextWindow&) NoWindow& = FindWindow("#32770", "America Online") Loop Until pWindow& <> 0& And pTextWindow& <> 0& Or NoWindow& <> 0& DoEvents If NoWindow& <> 0& Then OKButton& = FindWindowEx(NoWindow&, 0&, "Button", "OK") Call SendMessage(OKButton&, WM_KEYDOWN, VK_SPACE, 0&) Call SendMessage(OKButton&, WM_KEYUP, VK_SPACE, 0&) Call PostMessage(pgWindow&, WM_CLOSE, 0&, 0&) ProfileGet$ = "< No Profile >" Else Call PostMessage(pWindow&, WM_CLOSE, 0&, 0&) Call PostMessage(pgWindow&, WM_CLOSE, 0&, 0&) ProfileGet$ = pString$ End If End Function Public Function GetUser() As String Dim AOL As Long, MDI As Long, welcome As Long Dim child As Long, UserString As String AOL& = FindWindow("AOL Frame25", vbNullString) MDI& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString) child& = FindWindowEx(MDI&, 0&, "AOL Child", vbNullString) UserString$ = GetCaption(child&) If InStr(UserString$, "Welcome, ") = 1 Then UserString$ = Mid$(UserString$, 10, (InStr(UserString$, "!") - 10)) GetUser$ = UserString$ Exit Function Else Do child& = FindWindowEx(MDI&, child&, "AOL Child", vbNullString) UserString$ = GetCaption(child&) If InStr(UserString$, "Welcome, ") = 1 Then UserString$ = Mid$(UserString$, 10, (InStr(UserString$, "!") - 10)) GetUser$ = UserString$ Exit Function End If Loop Until child& = 0& End If GetUser$ = "" End Function Public Sub PlayMIDI(MIDIFile As String) Dim SafeFile As String SafeFile$ = Dir(MIDIFile$) If SafeFile$ <> "" Then Call mciSendString("play " & MIDIFile$, 0&, 0, 0) End If End Sub Public Sub StopMIDI(MIDIFile As String) Dim SafeFile As String SafeFile$ = Dir(MIDIFile$) If SafeFile$ <> "" Then Call mciSendString("stop " & MIDIFile$, 0&, 0, 0) End If End Sub Public Sub PlayWav(WavFile As String) Dim SafeFile As String SafeFile$ = Dir(WavFile$) If SafeFile$ <> "" Then Call sndPlaySound(WavFile$, SND_FLAG) End If End Sub Public Sub SetText(Window As Long, Text As String) Call SendMessageByString(Window&, WM_SETTEXT, 0&, Text$) End Sub Public Function ListToMailString(TheList As ListBox) As String Dim DoList As Long, MailString As String If TheList.List(0) = "" Then Exit Function For DoList& = 0 To TheList.ListCount - 1 MailString$ = MailString$ & "(" & TheList.List(DoList&) & "), " Next DoList& MailString$ = Mid(MailString$, 1, Len(MailString$) - 2) ListToMailString$ = MailString$ End Function Public Sub FormOnTop(FormName As Form) Call SetWindowPos(FormName.hWnd, HWND_TOPMOST, 0&, 0&, 0&, 0&, FLAGS) End Sub Public Sub FormNotOnTop(FormName As Form) Call SetWindowPos(FormName.hWnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, FLAGS) End Sub Public Sub FormDrag(TheForm As Form) Call ReleaseCapture Call SendMessage(TheForm.hWnd, WM_SYSCOMMAND, WM_MOVE, 0) End Sub Public Sub FormExitDown(TheForm As Form) Do DoEvents TheForm.Top = Trim(Str(Int(TheForm.Top) + 300)) Loop Until TheForm.Top > 7200 End Sub Public Sub FormExitLeft(TheForm As Form) Do DoEvents TheForm.Left = Trim(Str(Int(TheForm.Left) - 300)) Loop Until TheForm.Left < -TheForm.width End Sub Public Sub FormExitRight(TheForm As Form) Do DoEvents TheForm.Left = Trim(Str(Int(TheForm.Left) + 300)) Loop Until TheForm.Left > Screen.width End Sub Public Sub FormExitUp(TheForm As Form) Do DoEvents TheForm.Top = Trim(Str(Int(TheForm.Top) - 300)) Loop Until TheForm.Top < -TheForm.width End Sub Public Sub WindowHide(hWnd As Long) Call ShowWindow(hWnd&, SW_HIDE) End Sub Public Sub WindowShow(hWnd As Long) Call ShowWindow(hWnd&, SW_SHOW) End Sub Public Sub RunMenu(TopMenu As Long, SubMenu As Long) Dim AOL As Long, aMenu As Long, sMenu As Long, mnID As Long Dim mVal As Long AOL& = FindWindow("AOL Frame25", vbNullString) aMenu& = GetMenu(AOL&) sMenu& = GetSubMenu(aMenu&, TopMenu&) mnID& = GetMenuItemID(sMenu&, SubMenu&) Call SendMessageLong(AOL&, WM_COMMAND, mnID&, 0&) End Sub Public Sub RunMenuByString(SearchString As String) Dim AOL As Long, aMenu As Long, mCount As Long Dim LookFor As Long, sMenu As Long, sCount As Long Dim LookSub As Long, sID As Long, sString As String AOL& = FindWindow("AOL Frame25", vbNullString) aMenu& = GetMenu(AOL&) mCount& = GetMenuItemCount(aMenu&) For LookFor& = 0& To mCount& - 1 sMenu& = GetSubMenu(aMenu&, LookFor&) sCount& = GetMenuItemCount(sMenu&) For LookSub& = 0 To sCount& - 1 sID& = GetMenuItemID(sMenu&, LookSub&) sString$ = String$(100, " ") Call GetMenuString(sMenu&, sID&, sString$, 100&, 1&) If InStr(LCase(sString$), LCase(SearchString$)) Then Call SendMessageLong(AOL&, WM_COMMAND, sID&, 0&) Exit Sub End If Next LookSub& Next LookFor& End Sub